//
//  iTools.h
//  ReaderFramework
//
//  Created by 王越 on 15/1/30.
//  Copyright (c) 2015年 wangyue. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <MessageUI/MessageUI.h>
#import "AppDelegate.h"
#import "Reachability.h"

@interface iTools : NSObject


///////////////////////////////////////////////
///////////////日志相关//////////////////////
//////////////////////////////////////////////

/**
 *  打印错误日志
 *
 *
 *  @return <#return value description#>
 */
+(void)logException:(NSException*)exception;

/**
 *  打印日志
 *
 */
+(void)log:(NSString*)log;


///////////////////////////////////////////////
///////////////系统参数相关//////////////////////
//////////////////////////////////////////////

/**获取域名*/
+ (NSString *)ServerHost;

/**获取会员页面*/
+ (NSString *)vipUrl;

/**阅读搜索页面*/
+ (NSString *)readingSearchUrl;

/**获取绝对地址*/
+ (NSString *)getHttpUrl:(NSString *)url;

/**获取版本号*/
+ (NSString *)getVersion;

/**
 * 获取软件版本号
 *  @return 版本号
 */
+ (NSString *)getVersion2;

/**获取系统版本号*/
+ (float)getSystemVersion;

/**获取手机型号*/
+ (NSString*)getPhoneType;

/**获取屏幕像素高度*/
+ (int)getScreenWidth;

/**获取屏幕像素高度*/
+ (int)getScreenHeight;

/**获取屏幕大小*/
+ (NSString *)getScreenSize;

/**获取手机唯一标识*/
+(NSString *)getUDID;

/**获取ip地址*/
+ (NSString *)getIPAddress;

/**打开系统浏览器*/
+ (void)openSystemBrowser:(NSString *)url;

/**发送短信*/
+ (void)openSystemSms:(UIViewController *) viewController PhoneNumber:(NSString *)phoneNumber Body:(NSString *)body;


///////////////////////////////////////////////
///////////////时间相关/////////////////////////
//////////////////////////////////////////////

/**
 *  获取时间戳
 *
 *  @return <#return value description#>
 */
+ (NSTimeInterval)getCurrentTime;

/**获取时间戳*/
+ (NSString*)getCurrentTimeMillis;

/**
 *  获取格式化时间
 *
 *  @param l 目标时间
 *
 *  @return <#return value description#>
 */
+(NSString*)getDateFormat:(NSString*)time;

/**
 *  获取当前时间
 *
 *  @return <#return value description#>
 */
+(NSDate*)getCurrentDateTime;

/**
 *  获取当前格式化时间
 *
 *  @return <#return value description#>
 */
+(NSString*)getCurrentDateTimeStr;

/**
 *  获取指定格式化时间
 *
 *  @param time <#time description#>
 *
 *  @return <#return value description#>
 */
+(NSString*)getFormatDateTime:(NSDate*)time;

/**
 *  获取指定时间，指定格式的时间
 *
 *  @param time   时间
 *  @param format 格式
 *
 *  @return <#return value description#>
 */
+(NSString*)getFormatDate:(NSDate*)time FormatTime:(NSString*)format;

/**
 *  时间转换，string to date
 *
 *  @param dateString <#dateString description#>
 *
 *  @return <#return value description#>
 */
+ (NSDate *)getDateFromString:(NSString *)dateString;

/**
 *  时间转换，string to date
 *
 *  @param dateString <#dateString description#>
 *
 *  @return <#return value description#>
 */
+ (NSDate *)getDateFromString:(NSString *)dateString FormatTime:(NSString*)format;


///////////////////////////////////////////////
///////////////网络相关/////////////////////////
//////////////////////////////////////////////

/**
 *  获取网络是否可用
 *
 *
 *  @return <#return value description#>
 */
+ (BOOL)networkConnected;

/**
 *  获取wifi网络是否可用
 *
 *
 *  @return <#return value description#>
 */
+ (BOOL)networkWifiConnected;

/**
 * 获取当前网络
 */
+(NetworkStatus)getCurrentNetwork;


///////////////////////////////////////////////
///////////////配置文件相关//////////////////////
//////////////////////////////////////////////

/**
 *  获取UserDefault值
 *
 *
 *  @return <#return value description#>
 */
+ (id)getUserDefaultValue:(NSString *)key;

/**
 *  设置UserDefault值
 *
 *
 *  @return <#return value description#>
 */
+ (void)setUserDefaultValue:(id)value forKey:(NSString *)key;

/**
 *  设置用户Cookie值
 *
 *  @param cookie <#cookie description#>
 */
+(void)saveCookieValue:(NSHTTPCookie *)cookie;


///////////////////////////////////////////////
///////////////文件操作相关//////////////////////
//////////////////////////////////////////////

/**
 *  创建文件夹
 *
 *
 *  @return <#return value description#>
 */
+(BOOL)createDirectory:(NSString*)path;

/**
 *  判断文件是否存在
 *
 *
 *  @return <#return value description#>
 */
+(BOOL)isFileExists:(NSString*)path;

/**
 *  创建文件
 *
 *  @param tempImage <#tempImage description#>
 *  @param imageName <#imageName description#>
 *
 *  @return <#return value description#>
 */
+(BOOL)createFile:(NSData *)data WithName:(NSString *)path;

/**
 *  删除文件
 *
 *
 *  @return <#return value description#>
 */
+(void)deleteFile:(NSString*)path;

/**
 *  将byte变为M
 *
 *  @param size 文件大小
 *
 *  @return <#return value description#>
 */
+(NSString*)formatByteToM:(int)size;

/**
 *  获取Caches文件夹
 *
 *  @return <#return value description#>
 */
+(NSString *)getCachesDirectory;

/**
 *  获取Document文件夹
 *
 *  @return <#return value description#>
 */
+(NSString *)getDocumentDirectory;

/**
 *  获取缓存文件地址
 *
 *  @return <#return value description#>
 */
+(NSString *)getCacheFileDirectory:(NSString*)fileName;


/**
 *  图片旋转
 *
 *  @param image       <#image description#>
 *  @param orientation <#orientation description#>
 *
 *  @return <#return value description#>
 */
+(UIImage *)image:(UIImage *)image rotation:(UIImageOrientation)orientation;

/**
 *  图片翻转正
 *
 *  @param aImage <#aImage description#>
 *
 *  @return <#return value description#>
 */
+ (UIImage *)imageOrientation:(UIImage *)aImage;

/**
 *  图片压缩
 *
 *  @param originImage <#originImage description#>
 *
 *  @return <#return value description#>
 */
+(NSData*)imageCompress:(UIImage*)originImage;

/**
 *  将UIView转换为UIImage
 *
 *  @param view <#view description#>
 *
 *  @return <#return value description#>
 */
+(UIImage*)convertViewToImage:(UIView*)view;


///////////////////////////////////////////////
///////////////其它相关//////////////////////
//////////////////////////////////////////////

/**16进制颜色转换成UIColor*/
+ (UIColor *)getHexColor:(NSString *)hexColor;

/**获得一个随机颜色*/
+(UIColor*)getRandomColor;

/**获取文本宽高*/
+(CGSize)customTextSize:(UIFont *)font text:(NSString *)inputString size:(CGSize)inputSize;

/**获取随机数字符串*/
+(NSString*)getRandom;

/**拷贝到粘贴板*/
+(void)copyToPasteboard:(NSString*)msg;

/**判断字符串是不是为空*/
+(BOOL)decideIsEmpty:(NSString *)inputStr;

/**验证字符串是不是为数字,字母*/
+(BOOL)evaluateStringAlpbetAndNumber:(NSString *)title;

/**判断是不是有效的手机号码*/
+ (NSString *)valiMobile:(NSString *)mobile;

/**字符串转MD5码*/
+ (NSString *)md5Hash:(NSString *)str;

/**
 切分字符串
 
 @param path      <#path description#>
 @param splitChar <#splitChar description#>
 
 @return <#return value description#>
 */
+(NSMutableArray*)splitString:(NSString*)path SplitChar:(NSString*)splitChar;

@end

